#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimer>
#include <QLabel>
#include <map.h>
#include <player.h>
#include <QMouseEvent>
#include <enemyplane.h>
#include <bomb.h>
#include <boss.h>



QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public://函数
    Widget(QWidget *parent = nullptr);//构建函数
    ~Widget();//析构函数

    void initScene();//用于刷新窗口

    void playGame();//启动游戏 用于启动定时器对象

    void updatePosition();//更新坐标

    void paintEvent(QPaintEvent *event);//绘图事件

    void mouseMoveEvent(QMouseEvent *event);//鼠标事件

    void enemyToScene();//敌机出场函数

    void bossToScene();//boss出场函数

    void collisionDetection();//碰撞检测函数

signals:
    void over();

public://成员变量
    QTimer m_Timer;//计时器
    Map m_map;//地图
    Player m_hero;//玩家飞机
    //敌机数组
    EnemyPlane m_enemys[ENEMY_NUM];
    Boss m_bosses[BOSS_NUM];
    //敌机,boss出场间隔记录
    int m_recorder;
    //爆炸数组
    Bomb m_bombs[BOMB_NUM];
    QLabel* life;
    QLabel* score;
    bool isover=false;

signals:
    void gameagain();









private:
    Ui::Widget *ui;
};


#endif // WIDGET_H
